package com.medicine.hbp.adapter;

import java.util.ArrayList;
import java.util.Random;

import com.medicine.hbp.uitl.ToastUtil;
import com.shitou.googleplay.lib.randomlayout.StellarMap.Adapter;

import android.app.Activity;
import android.graphics.Color;
import android.os.Handler;
import android.os.Message;
import android.util.TypedValue;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;

public class StellarMapAdapter implements Adapter {
	private Activity activity;
	private ArrayList<String> list ;
	private Handler handler;
	public StellarMapAdapter(Activity activity, ArrayList<String> list,Handler handler) {
		this.activity=activity;
		this.list=list;
		this.handler=handler;
	}
	/**
	 * 返回多少组数据
	 */
	@Override
	public int getGroupCount() {
		return 1;
	}

	/**
	 * 每组多少个数据
	 */
	@Override
	public int getCount(int group) {
		return list.size();
	}

	/**
	 * group: 当前是第几组 position:是当前组的position
	 */
	@Override
	public View getView(int group, int position, View convertView) {
		final TextView textView = new TextView(activity);
		// 根据group和组中的position计算出对应的在list中的位置
		int listPosition = group * getCount(group) + position;
		textView.setText(list.get(listPosition));

		// 1.设置随机的字体大小(随机大小)
		Random random = new Random();
		textView.setTextSize(TypedValue.COMPLEX_UNIT_SP,
				random.nextInt(15) + 14);// 14-29
		// 2.上色，设置随机的字体颜色
		// 如果三原色的值过大会偏白色，过小会偏黑色，所以应该随机一个中间的颜色的值
		int red = random.nextInt(150) + 50;// 50-199
		int green = random.nextInt(150) + 50;// 50-199
		int blue = random.nextInt(150) + 50;// 50-199
		int textColor = Color.rgb(red, green, blue);// 在rgb三原色的基础上混合出一种新的颜色
		textView.setTextColor(textColor);
		textView.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View arg0) {
				Message msg=new Message();
				msg.obj=textView.getText().toString();
				handler.sendMessage(msg);
			}
		});
		return textView;
	}

	/**
	 * 虽然定义了，但是并没有什么乱用
	 */
	@Override
	public int getNextGroupOnPan(int group, float degree) {
		return 0;
	}

	/**
	 * 当前组缩放完成之后下一组加载哪一组的数据 group： 表示当前是第几组
	 */
	@Override
	public int getNextGroupOnZoom(int group, boolean isZoomIn) {
		// 0->1->2->0
		return (group + 1) % getGroupCount();
	}

}